﻿using System.Data;
using MySqlConnector;

namespace Front._1124;

public partial class BookMain : Form
{
    public BookMain()
    {
        InitializeComponent();
    }



    private void BookMain_Load(object sender, EventArgs e)
    {
        //获取所有图书
        GetAllBooks();
        
        //获取图书分类
        GetAllGategories();
    }

    private void GetAllGategories()
    {
        using var connection = new MySqlConnection("server=localhost;port=3306;database=book;user=root;password=root;charset=utf8mb4;AllowPublicKeyRetrieval=True;");
        connection.Open();

        string sql = "SELECT distinct book_category FROM book_info;";
        //创建数据适配器
        MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(sql, connection);
        //创建数据集
        DataSet dataSet = new DataSet();
        //填充数据
        mySqlDataAdapter.Fill(dataSet, "book_category");
        //绑定数据
        DataTable dataTable = dataSet.Tables["book_category"];
        //插入全部行
        DataRow row = dataTable.NewRow();
        row[0] = "全部";
        dataTable.Rows.InsertAt(row, 0);
        
        
        comboBox1.DataSource=dataTable;
        comboBox1.DisplayMember=dataTable.Columns[0].ColumnName;
    }

    private void GetAllBooks()
    {
        using var connection = new MySqlConnection("server=localhost;port=3306;database=book;user=root;password=root;charset=utf8mb4;AllowPublicKeyRetrieval=True;");
        connection.Open();

        string sql = "SELECT book_id,isbn,book_name,author FROM book_info;";
        //创建数据适配器
        MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(sql, connection);
        //创建数据集
        DataSet dataSet = new DataSet();
        //填充数据
        mySqlDataAdapter.Fill(dataSet, "book_info");
        //绑定数据
        this.dataGridView1.DataSource=dataSet.Tables["book_info"];
    }


    private void button2_Click(object sender, EventArgs e)
    {
        AddBookForm addBookForm = new AddBookForm();
        //拿到新增的返回结果
        DialogResult result=addBookForm.ShowDialog();
        if (result == DialogResult.OK)
        {
            GetAllBooks();
        }
    }

    private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        DialogResult result = MessageBox.Show("确定要删除此条数据吗？", "警告", MessageBoxButtons.OKCancel);
        if (result==DialogResult.OK)
        {
            //获取选择的行
            int bookId = (int)this.dataGridView1.SelectedRows[0].Cells[0].Value;
            using var connection = new MySqlConnection("server=localhost;port=3306;database=book;user=root;password=root;charset=utf8mb4;AllowPublicKeyRetrieval=True;");
            connection.Open();

            string sql = "delete from book_info where book_id=@bookId;";
            using var cmd = new MySqlCommand(sql, connection);
            cmd.Parameters.AddWithValue("bookId", bookId);
            int count=cmd.ExecuteNonQuery();
            if (count > 0)
            {
                MessageBox.Show("删除成功");
                GetAllBooks();
            }
            
        }
    }
}